In a digital filter, particurlarly one included in a subscriber line audio processing circuit (SLAC), calculations are carried out on a sampled signal. Each signal sample is represented as a digital word in linear code. The number of bits/word depends on the dynamic range required by the filter.
Multiplications with digital coefficients are performed in the filter. The result of a multiplication normally contains more bits than the available word length, and the result must therefore be rounded off or truncated. By rounding off the digital value is given a new value above or below the original value, according to the same rules as those for rounding off decimals. By truncation, there is intended magnitude truncation, i.e. the digital value is given a new value, the amount of which is always below the magnitude of the original value (truncation towards zero).
If rounding off is used there is a risk of self-oscillation in the digital filter if this is of the infinite impulse response type, i.e. a filter where the signal is fed back.
If magnitude truncation is used, the filter can be constructed so that the risk of self-oscillation is removed, since the digital values are continually rounded off towards zero. Truncation is furthermore easier to realize than rounding off. However, with magnitude truncation the signal will always be somewhat too small, due to truncation errors and in the calculations. This particularly affects low signal levels where the truncation error is not negligible compared with the signal amplitude. In the accompanying drawing, FIG. 1 illustrates an analog signal 1 which, for example, is sinusoidal. It has been sampled to give the sample values s.sub.1,s.sub.2 . . . , which constitute the input signal to a digital filter. The output signal from the filter is illustrated in FIG. 2. Apart from the desired changes in the signal caused by filtering, the sample values s.sub.1 s.sub.2 . . . have been given a somewhat lower value that that of the nominal signal 1 due to truncations in the filter. The (dashed) analog signal 2 corresponding to the truncated sample values s.sub.1 s.sub.2 . . . is thus less than the signal 1.
It is previously known to increase the number of bits/word so that the effect of truncation errors will be as small as possible. Many bits/word result in a more complicated circuit, however, since registers, stores and calculating units, i.e. arithmetic logic units (ALU), must be made large. FIG. 3 illustrates the amplification A in a filter as a function of the signal level. The number of bits/word (16, 17, 18 or 19 bits/word) has been given as a parameter.